home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BCI NET
/
BCI NET Dec 94.iso
/
archives
/
programming
/
source
/
retinasource.lha
/
RBO_SCode.lha
/
Include
/
fade.i
< prev
next >
Wrap
Text File
|
1993-05-03
|
2KB
|
113 lines
;================================================
; fade routine v2.01 (bugfix by me!!!!)
; a0 -> to pallet to fade to
; a1 -> to pallet to fade from
; a3 -> colour list in copper
; d7 = Number of colours
;================================================
fade
swap d7
move #14,d0
bright
moveq #2,d1
nibble
swap d7
move d7,d2
swap d7
col
move d2,d3
lsl #1,d3
move 0(a0,d3.w),d4
move 0(a1,d3.w),d5
cmp #2,d1
bne.b not2
and #$f00,d4
and #$f00,d5
cmp d5,d4
beq.b doneadd
blo.b sub2
add #$100,0(a1,d3.w)
bra.b doneadd
sub2
sub #$100,0(a1,d3.w)
bra.b doneadd
not2
cmp #1,d1
bne.b not1
and #$f0,d4
and #$f0,d5
cmp d5,d4
beq.b doneadd
blo.b sub1
add #$10,0(a1,d3.w)
bra.b doneadd
sub1
sub #$10,0(a1,d3.w)
bra.b doneadd
not1
cmp #0,d1
bne.b doneadd
and #$f,d4
and #$f,d5
cmp d5,d4
beq.b doneadd
blo.b sub0
addq #$1,0(a1,d3.w)
bra.b doneadd
sub0
subq #$1,0(a1,d3.w)
doneadd
dbra d2,col
; change immediate value in d6 the higher it is the slower the fade
moveq #1,d6
bsr.b pause
move.l a1,a2
swap d7
move.w d7,d2
swap d7
move.l a3,-(sp)
copy3 move.w (a2)+,2(a3)
addq.l #4,a3
dbra d2,copy3
move.l (sp)+,a3
dbra d1,nibble
dbra d0,bright
rts
;================================================
; pause
; d6.w = pause time in 1/50 sec
;================================================
pause
move.w vbl,d7
waitframe
cmp vbl,d7
beq.b waitframe
dbra d6,pause
rts
**************************************************
; in interupt routine put:-
; eor.w #$FFFF,vbl
; in variables put:-
;vbl dc.w 0
**************************************************